1. Field of the Invention
The present invention relates to disk drives comprising encryption circuitry. More particularly, the present invention relates to a disk drive comprising encryption circuitry selectively enabled by verifying a circuit that provides plaintext data.
2. Description of the Prior Art
Cryptosystems, such as disk drives employing cryptography, are typically secure as long as attackers cannot discover the secret keys used to encrypt and decrypt messages. Attackers use various cryptanalysis techniques to analyze a cryptosystem in an attempt to discover the secret keys, where the difficulty in discovering the secret keys generally depends on the amount of information available. The cryptosystem typically employs a public encryption algorithm (such as RSA, DES, etc.), therefore an attacker typically knows the encryption algorithm and has access to ciphertext (encrypted text). However, it is usually very difficult to discover the secret keys with this information alone because an attacker typically needs to perform various operations on the ciphertext with respect to the original plaintext (unencrypted text). A known cryptanalysis technique includes monitoring a cryptosystem to capture plaintext before it is encrypted so that it can be analyzed together with the ciphertext. Another cryptoanalysis technique includes performing a chosen plaintext attack by choosing the plaintext that is to be encrypted so as to expose vulnerabilities of a cryptosystem because the attacker can deliberately pick patterns helpful to analysis contributing to discovering the secret keys. This type of an attack can be defended against by requiring the individual clients accessing the cryptosystem to be authenticated. However, an attacker with direct access to a cryptosystem may attempt to circumvent such a requirement by tampering with the cryptosystem. Examples of tampering include inspecting, altering or replacing a component of the cryptosytem in order to force the encryption operation.
U.S. Pat. No. 5,374,819 (the ""819 patent) discloses a software program executing on a CPU which provides system operation validation in order to prevent the software program from executing on unlicensed computer systems. The validation method requires reading a unique chip identifier (chip ID) stored in a system device, and a corresponding chip ID and an encrypted code stored in a non-volatile memory. The encrypted code, termed a message authentication code or MAC, is generated based on the chip ID using a secret key. The ""819 patent relies on uncompromised secrecy of the secret key to prevent tampering which could circumvent the validation process.
The ""819 patent is susceptible to a probing attacker attempting to discover the secret key by performing a chosen plain-text attack; for example, a probing attacker could tamper with the cryptosystem to generate chosen plaintext by modifying the chip ID stored in the non-volatile memory and then evaluate the resulting MAC generated by the encryption process. Further, a probing attacker could monitor the software program as it executes on the CPU in order to observe how the chosen plaintext is being encrypted using the secret key. If the secret key is discovered, the security of the system is compromised since the chip ID and corresponding MAC could be altered without detection.
There is, therefore, a need for a disk drive comprising a tamper resistant cryptosystem which is protected from an attacker employing chosen plaintext attacks.
The present invention may be regarded as a disk drive comprising a disk for storing encrypted data. The disk drive comprises a first circuit for providing plaintext data to a second circuit. The second circuit comprises controllable encryption circuitry for encrypting the plaintext data into the encrypted data. The controllable encryption circuitry comprises a data input, an enable input, and a data output. The second circuit further comprises a plaintext input for providing the plaintext data to the data input, an encrypted text output for providing the encrypted data from the data output, and a first control input for receiving a first device authentication signal for authenticating the first circuit. The second circuit comprises a first verification circuit, responsive to the first device authentication signal, for producing a first verification signal for use in controlling the enable input of the encryption circuitry to enable the encryption circuitry to provide the encrypted data via the encrypted text output.
The present invention may also be regard as a method of storing encrypted data to a disk. The method comprises the steps of receiving plaintext data from a first circuit, and receiving a first device authentication signal for authenticating the signal first circuit. A first verification signal is produced in response to the first device authentication signal, and encryption circuitry is enabled by the first verification signal to encrypt the plaintext data into the encrypted data. The encrypted data is then stored to the disk.